package com.example.mq.RabbitMQ;

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;

/**
 * @author Jason
 * @PACKAGE_NAME com.example.mq.RabbitMQ
 * @Description 发布端
 * @date 2023-11-20 10:11
 */
public class Producer {
    private final static String QUEUE_NAME = "hello";
    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        // 创建连接工厂
        factory.setHost("localhost"); // 设置 RabbitMQ 服务器的地址
        // 设置连接到 RabbitMQ 的主机地址
        try (Connection connection = factory.newConnection();
             Channel channel = connection.createChannel()) {
            // 建立到代理服务器的连接和信道
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            // 声明一个队列，如果队列存在则什么都不做，否则创建该队列
            String message = "Hello World!";
            // 定义要发送的消息
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            // 发送消息到队列中
            System.out.println(" [x] 已发送消息：'" + message + "'");
            // 控制台打印消息发送情况
        }
    }
}
